package nz.ac.massey.whatiscomputerscience.core.model;

import java.util.List;


/**
 * A ordered collection of verices.
 * @author Nathan C Jones
 */
public interface Polygon{
	
	//TODO specify the rules of a polygon?

	/**
	 * Get the number of vertices in the polygon. ie. the number of sides. 
	 * @return the number of vertices in the polygon.
	 */
	int getVertexCount();
	
	/**
	 * Get the list of vertices in the polygon.
	 * @return the list of vertices in the polygon.
	 * 
	 * @message I think you should specify that the list is immutable - I had a look at the collections API and this is not type contrained it is just mentioned in the documentation
	 */
	List<Coordinate> getVertices(); //TODO should the API specify that modifying the returned list will not modify the state of the polygon?
}